/**
* \addtogroup DispensingHead DispensingHead
* @{
*/

/**
\file DispensingHeadObjects
\author ET9300Utilities.ApplicationHandler (Version 1.3.6.0) | EthercatSSC@beckhoff.com

\brief DispensingHead specific objects<br>
\brief NOTE : This file will be overwritten if a new object dictionary is generated!<br>
*/

#if defined(_DISPENSING_HEAD_) && (_DISPENSING_HEAD_ == 1)
#define PROTO
#else
#define PROTO extern
#endif
/******************************************************************************
*                    Object 0x1600 : IORxGroup process data mapping
******************************************************************************/
/**
* \addtogroup 0x1600 0x1600 | IORxGroup process data mapping
* @{
* \brief Object 0x1600 (IORxGroup process data mapping) definition
*/
#ifdef _OBJD_
/**
* \brief Object entry descriptions<br>
* <br>
* SubIndex 0<br>
* SubIndex 1 - Reference to 0x7000.1<br>
* SubIndex 2 - Reference to 0x7000.2<br>
*/
OBJCONST TSDOINFOENTRYDESC    OBJMEM asEntryDesc0x1600[] = {
{ DEFTYPE_UNSIGNED8 , 0x8 , ACCESS_READ },
{ DEFTYPE_UNSIGNED32 , 0x20 , ACCESS_READ }, /* Subindex1 - Reference to 0x7000.1 */
{ DEFTYPE_UNSIGNED32 , 0x20 , ACCESS_READ }}; /* Subindex2 - Reference to 0x7000.2 */

/**
* \brief Object/Entry names
*/
OBJCONST UCHAR OBJMEM aName0x1600[] = "IORxGroup process data mapping\000"
"SubIndex 001\000"
"SubIndex 002\000\377";
#endif //#ifdef _OBJD_

#ifndef _DISPENSING_HEAD_OBJECTS_H_
/**
* \brief Object structure
*/
typedef struct OBJ_STRUCT_PACKED_START {
UINT16 u16SubIndex0;
UINT32 SI1; /* Subindex1 - Reference to 0x7000.1 */
UINT32 SI2; /* Subindex2 - Reference to 0x7000.2 */
} OBJ_STRUCT_PACKED_END
TOBJ1600;
#endif //#ifndef _DISPENSING_HEAD_OBJECTS_H_

/**
* \brief Object variable
*/
PROTO TOBJ1600 IORxGroupProcessDataMapping0x1600
#if defined(_DISPENSING_HEAD_) && (_DISPENSING_HEAD_ == 1)
={2,0x70000110,0x70000220}
#endif
;
/** @}*/



/******************************************************************************
*                    Object 0x1A00 : IOTxGroup process data mapping
******************************************************************************/
/**
* \addtogroup 0x1A00 0x1A00 | IOTxGroup process data mapping
* @{
* \brief Object 0x1A00 (IOTxGroup process data mapping) definition
*/
#ifdef _OBJD_
/**
* \brief Object entry descriptions<br>
* <br>
* SubIndex 0<br>
* SubIndex 1 - Reference to 0x6000.1<br>
* SubIndex 2 - Reference to 0x6000.2<br>
* SubIndex 3 - Reference to 0x6000.3<br>
* SubIndex 4 - Reference to 0x6000.4<br>
* SubIndex 5 - Reference to 0x6000.5<br>
* SubIndex 6 - Reference to 0x6000.6<br>
* SubIndex 7 - Reference to 0x6000.7<br>
*/
OBJCONST TSDOINFOENTRYDESC    OBJMEM asEntryDesc0x1A00[] = {
{ DEFTYPE_UNSIGNED8 , 0x8 , ACCESS_READ },
{ DEFTYPE_UNSIGNED32 , 0x20 , ACCESS_READ }, /* Subindex1 - Reference to 0x6000.1 */
{ DEFTYPE_UNSIGNED32 , 0x20 , ACCESS_READ }, /* Subindex2 - Reference to 0x6000.2 */
{ DEFTYPE_UNSIGNED32 , 0x20 , ACCESS_READ }, /* Subindex3 - Reference to 0x6000.3 */
{ DEFTYPE_UNSIGNED32 , 0x20 , ACCESS_READ }, /* Subindex4 - Reference to 0x6000.4 */
{ DEFTYPE_UNSIGNED32 , 0x20 , ACCESS_READ }, /* Subindex5 - Reference to 0x6000.5 */
{ DEFTYPE_UNSIGNED32 , 0x20 , ACCESS_READ }, /* Subindex6 - Reference to 0x6000.6 */
{ DEFTYPE_UNSIGNED32 , 0x20 , ACCESS_READ }}; /* Subindex7 - Reference to 0x6000.7 */

/**
* \brief Object/Entry names
*/
OBJCONST UCHAR OBJMEM aName0x1A00[] = "IOTxGroup process data mapping\000"
"SubIndex 001\000"
"SubIndex 002\000"
"SubIndex 003\000"
"SubIndex 004\000"
"SubIndex 005\000"
"SubIndex 006\000"
"SubIndex 007\000\377";
#endif //#ifdef _OBJD_

#ifndef _DISPENSING_HEAD_OBJECTS_H_
/**
* \brief Object structure
*/
typedef struct OBJ_STRUCT_PACKED_START {
UINT16 u16SubIndex0;
UINT32 SI1; /* Subindex1 - Reference to 0x6000.1 */
UINT32 SI2; /* Subindex2 - Reference to 0x6000.2 */
UINT32 SI3; /* Subindex3 - Reference to 0x6000.3 */
UINT32 SI4; /* Subindex4 - Reference to 0x6000.4 */
UINT32 SI5; /* Subindex5 - Reference to 0x6000.5 */
UINT32 SI6; /* Subindex6 - Reference to 0x6000.6 */
UINT32 SI7; /* Subindex7 - Reference to 0x6000.7 */
} OBJ_STRUCT_PACKED_END
TOBJ1A00;
#endif //#ifndef _DISPENSING_HEAD_OBJECTS_H_

/**
* \brief Object variable
*/
PROTO TOBJ1A00 IOTxGroupProcessDataMapping0x1A00
#if defined(_DISPENSING_HEAD_) && (_DISPENSING_HEAD_ == 1)
={7,0x60000110,0x60000210,0x60000310,0x60000410,0x60000510,0x60000610,0x60000720}
#endif
;
/** @}*/



/******************************************************************************
*                    Object 0x1C12 : SyncManager 2 assignment
******************************************************************************/
/**
* \addtogroup 0x1C12 0x1C12 | SyncManager 2 assignment
* @{
* \brief Object 0x1C12 (SyncManager 2 assignment) definition
*/
#ifdef _OBJD_
/**
* \brief Entry descriptions<br>
* 
* Subindex 0<br>
* Subindex 1 - n (the same entry description is used)<br>
*/
OBJCONST TSDOINFOENTRYDESC    OBJMEM asEntryDesc0x1C12[] = {
{ DEFTYPE_UNSIGNED8 , 0x8 , ACCESS_READ },
{ DEFTYPE_UNSIGNED16 , 0x10 , ACCESS_READ }};

/**
* \brief Object name definition<br>
* For Subindex 1 to n the syntax 'Subindex XXX' is used
*/
OBJCONST UCHAR OBJMEM aName0x1C12[] = "SyncManager 2 assignment\000\377";
#endif //#ifdef _OBJD_

#ifndef _DISPENSING_HEAD_OBJECTS_H_
/**
* \brief Object structure
*/
typedef struct OBJ_STRUCT_PACKED_START {
UINT16   u16SubIndex0;  /**< \brief Subindex 0 */
UINT16 aEntries[1];  /**< \brief Subindex 1 - 1 */
} OBJ_STRUCT_PACKED_END
TOBJ1C12;
#endif //#ifndef _DISPENSING_HEAD_OBJECTS_H_

/**
* \brief Object variable
*/
PROTO TOBJ1C12 sRxPDOassign
#if defined(_DISPENSING_HEAD_) && (_DISPENSING_HEAD_ == 1)
={1,{0x1600}}
#endif
;
/** @}*/



/******************************************************************************
*                    Object 0x1C13 : SyncManager 3 assignment
******************************************************************************/
/**
* \addtogroup 0x1C13 0x1C13 | SyncManager 3 assignment
* @{
* \brief Object 0x1C13 (SyncManager 3 assignment) definition
*/
#ifdef _OBJD_
/**
* \brief Entry descriptions<br>
* 
* Subindex 0<br>
* Subindex 1 - n (the same entry description is used)<br>
*/
OBJCONST TSDOINFOENTRYDESC    OBJMEM asEntryDesc0x1C13[] = {
{ DEFTYPE_UNSIGNED8 , 0x8 , ACCESS_READ },
{ DEFTYPE_UNSIGNED16 , 0x10 , ACCESS_READ }};

/**
* \brief Object name definition<br>
* For Subindex 1 to n the syntax 'Subindex XXX' is used
*/
OBJCONST UCHAR OBJMEM aName0x1C13[] = "SyncManager 3 assignment\000\377";
#endif //#ifdef _OBJD_

#ifndef _DISPENSING_HEAD_OBJECTS_H_
/**
* \brief Object structure
*/
typedef struct OBJ_STRUCT_PACKED_START {
UINT16   u16SubIndex0;  /**< \brief Subindex 0 */
UINT16 aEntries[1];  /**< \brief Subindex 1 - 1 */
} OBJ_STRUCT_PACKED_END
TOBJ1C13;
#endif //#ifndef _DISPENSING_HEAD_OBJECTS_H_

/**
* \brief Object variable
*/
PROTO TOBJ1C13 sTxPDOassign
#if defined(_DISPENSING_HEAD_) && (_DISPENSING_HEAD_ == 1)
={1,{0x1A00}}
#endif
;
/** @}*/



/******************************************************************************
*                    Object 0x6000 : IOTxGroup
******************************************************************************/
/**
* \addtogroup 0x6000 0x6000 | IOTxGroup
* @{
* \brief Object 0x6000 (IOTxGroup) definition
*/
#ifdef _OBJD_
/**
* \brief Object entry descriptions<br>
* <br>
* SubIndex 0<br>
* SubIndex 1 - input<br>
* SubIndex 2 - outputcurrent<br>
* SubIndex 3 - analogInValue1<br>
* SubIndex 4 - analogInValue2<br>
* SubIndex 5 - analogInValue3<br>
* SubIndex 6 - analogInValue4<br>
* SubIndex 7 - reservedData<br>
*/
OBJCONST TSDOINFOENTRYDESC    OBJMEM asEntryDesc0x6000[] = {
{ DEFTYPE_UNSIGNED8 , 0x8 , ACCESS_READ },
{ DEFTYPE_UNSIGNED16 , 0x10 , ACCESS_READ | OBJACCESS_TXPDOMAPPING }, /* Subindex1 - input */
{ DEFTYPE_UNSIGNED16 , 0x10 , ACCESS_READ | OBJACCESS_TXPDOMAPPING }, /* Subindex2 - outputcurrent */
{ DEFTYPE_UNSIGNED16 , 0x10 , ACCESS_READ | OBJACCESS_TXPDOMAPPING }, /* Subindex3 - analogInValue1 */
{ DEFTYPE_UNSIGNED16 , 0x10 , ACCESS_READ | OBJACCESS_TXPDOMAPPING }, /* Subindex4 - analogInValue2 */
{ DEFTYPE_UNSIGNED16 , 0x10 , ACCESS_READ | OBJACCESS_TXPDOMAPPING }, /* Subindex5 - analogInValue3 */
{ DEFTYPE_UNSIGNED16 , 0x10 , ACCESS_READ | OBJACCESS_TXPDOMAPPING }, /* Subindex6 - analogInValue4 */
{ DEFTYPE_UNSIGNED32 , 0x20 , ACCESS_READ | OBJACCESS_TXPDOMAPPING }}; /* Subindex7 - reservedData */

/**
* \brief Object/Entry names
*/
OBJCONST UCHAR OBJMEM aName0x6000[] = "IOTxGroup\000"
"input\000"
"outputcurrent\000"
"analogInValue1\000"
"analogInValue2\000"
"analogInValue3\000"
"analogInValue4\000"
"reservedData\000\377";
#endif //#ifdef _OBJD_

#ifndef _DISPENSING_HEAD_OBJECTS_H_
/**
* \brief Object structure
*/
typedef struct OBJ_STRUCT_PACKED_START  __attribute__((packed))  {
UINT16 u16SubIndex0;
UINT16 Input; /* Subindex1 - input */
UINT16 Outputcurrent; /* Subindex2 - outputcurrent */
UINT16 AnalogInValue1; /* Subindex3 - analogInValue1 */
UINT16 AnalogInValue2; /* Subindex4 - analogInValue2 */
UINT16 AnalogInValue3; /* Subindex5 - analogInValue3 */
UINT16 AnalogInValue4; /* Subindex6 - analogInValue4 */
UINT32 ReservedData; /* Subindex7 - reservedData */
} OBJ_STRUCT_PACKED_END
TOBJ6000;
#endif //#ifndef _DISPENSING_HEAD_OBJECTS_H_

/**
* \brief Object variable
*/
PROTO TOBJ6000 IOTxGroup0x6000
#if defined(_DISPENSING_HEAD_) && (_DISPENSING_HEAD_ == 1)
={7,0,0,0,0,0,0,0}
#endif
;
/** @}*/



/******************************************************************************
*                    Object 0x7000 : IORxGroup
******************************************************************************/
/**
* \addtogroup 0x7000 0x7000 | IORxGroup
* @{
* \brief Object 0x7000 (IORxGroup) definition
*/
#ifdef _OBJD_
/**
* \brief Object entry descriptions<br>
* <br>
* SubIndex 0<br>
* SubIndex 1 - output<br>
* SubIndex 2 - reservedData<br>
*/
OBJCONST TSDOINFOENTRYDESC    OBJMEM asEntryDesc0x7000[] = {
{ DEFTYPE_UNSIGNED8 , 0x8 , ACCESS_READ },
{ DEFTYPE_UNSIGNED16 , 0x10 , ACCESS_READWRITE | OBJACCESS_RXPDOMAPPING }, /* Subindex1 - output */
{ DEFTYPE_UNSIGNED32 , 0x20 , ACCESS_READWRITE | OBJACCESS_RXPDOMAPPING }}; /* Subindex2 - reservedData */

/**
* \brief Object/Entry names
*/
OBJCONST UCHAR OBJMEM aName0x7000[] = "IORxGroup\000"
"output\000"
"reservedData\000\377";
#endif //#ifdef _OBJD_

#ifndef _DISPENSING_HEAD_OBJECTS_H_
/**
* \brief Object structure
*/
typedef struct OBJ_STRUCT_PACKED_START  __attribute__((packed))  {
UINT16 u16SubIndex0;
UINT16 Output; /* Subindex1 - output */
UINT32 ReservedData; /* Subindex2 - reservedData */
} OBJ_STRUCT_PACKED_END
TOBJ7000;
#endif //#ifndef _DISPENSING_HEAD_OBJECTS_H_

/**
* \brief Object variable
*/
PROTO TOBJ7000 IORxGroup0x7000
#if defined(_DISPENSING_HEAD_) && (_DISPENSING_HEAD_ == 1)
={2,0,0}
#endif
;
/** @}*/



/******************************************************************************
*                    Object 0x8000 : conf
******************************************************************************/
/**
* \addtogroup 0x8000 0x8000 | conf
* @{
* \brief Object 0x8000 (conf) definition
*/
#ifdef _OBJD_
/**
* \brief Object entry descriptions<br>
* <br>
* SubIndex 0<br>
* SubIndex 1 - PowerLevel<br>
* SubIndex 2 - inputType<br>
* SubIndex 3 - debounceTime<br>
* SubIndex 4 - analogInSelect1<br>
* SubIndex 5 - analogInSelect2<br>
* SubIndex 6 - analogInSelect3<br>
* SubIndex 7 - analogInSelect4<br>
* SubIndex 8 - reservedData<br>
*/
OBJCONST TSDOINFOENTRYDESC    OBJMEM asEntryDesc0x8000[] = {
{ DEFTYPE_UNSIGNED8 , 0x8 , ACCESS_READ },
{ DEFTYPE_UNSIGNED8 , 0x8 , ACCESS_READWRITE }, /* Subindex1 - PowerLevel */
{ DEFTYPE_UNSIGNED8 , 0x8 , ACCESS_READWRITE }, /* Subindex2 - inputType */
{ DEFTYPE_UNSIGNED16 , 0x10 , ACCESS_READWRITE }, /* Subindex3 - debounceTime */
{ DEFTYPE_UNSIGNED8 , 0x8 , ACCESS_READWRITE }, /* Subindex4 - analogInSelect1 */
{ DEFTYPE_UNSIGNED8 , 0x8 , ACCESS_READWRITE }, /* Subindex5 - analogInSelect2 */
{ DEFTYPE_UNSIGNED8 , 0x8 , ACCESS_READWRITE }, /* Subindex6 - analogInSelect3 */
{ DEFTYPE_UNSIGNED8 , 0x8 , ACCESS_READWRITE }, /* Subindex7 - analogInSelect4 */
{ DEFTYPE_UNSIGNED32 , 0x20 , ACCESS_READWRITE }}; /* Subindex8 - reservedData */

/**
* \brief Object/Entry names
*/
OBJCONST UCHAR OBJMEM aName0x8000[] = "conf\000"
"PowerLevel\000"
"inputType\000"
"debounceTime\000"
"analogInSelect1\000"
"analogInSelect2\000"
"analogInSelect3\000"
"analogInSelect4\000"
"reservedData\000\377";
#endif //#ifdef _OBJD_

#ifndef _DISPENSING_HEAD_OBJECTS_H_
/**
* \brief Object structure
*/
typedef struct OBJ_STRUCT_PACKED_START {
UINT16 u16SubIndex0;
UINT8 PowerLevel; /* Subindex1 - PowerLevel */
UINT8 InputType; /* Subindex2 - inputType */
UINT16 DebounceTime; /* Subindex3 - debounceTime */
UINT8 AnalogInSelect1; /* Subindex4 - analogInSelect1 */
UINT8 AnalogInSelect2; /* Subindex5 - analogInSelect2 */
UINT8 AnalogInSelect3; /* Subindex6 - analogInSelect3 */
UINT8 AnalogInSelect4; /* Subindex7 - analogInSelect4 */
UINT32 ReservedData; /* Subindex8 - reservedData */
} OBJ_STRUCT_PACKED_END
TOBJ8000;
#endif //#ifndef _DISPENSING_HEAD_OBJECTS_H_

/**
* \brief Object variable
*/
PROTO TOBJ8000 Conf0x8000
#if defined(_DISPENSING_HEAD_) && (_DISPENSING_HEAD_ == 1)
={8,0,0,0,0,0,0,0,0}
#endif
;
/** @}*/







#ifdef _OBJD_
TOBJECT    OBJMEM ApplicationObjDic[] = {
/* Object 0x1600 */
{NULL , NULL ,  0x1600 , {DEFTYPE_PDOMAPPING , 2 | (OBJCODE_REC << 8)} , asEntryDesc0x1600 , aName0x1600 , &IORxGroupProcessDataMapping0x1600, NULL , NULL , 0x0000 },
/* Object 0x1A00 */
{NULL , NULL ,  0x1A00 , {DEFTYPE_PDOMAPPING , 7 | (OBJCODE_REC << 8)} , asEntryDesc0x1A00 , aName0x1A00 , &IOTxGroupProcessDataMapping0x1A00, NULL , NULL , 0x0000 },
/* Object 0x1C12 */
{NULL , NULL ,  0x1C12 , {DEFTYPE_UNSIGNED16 , 1 | (OBJCODE_ARR << 8)} , asEntryDesc0x1C12 , aName0x1C12 , &sRxPDOassign, NULL , NULL , 0x0000 },
/* Object 0x1C13 */
{NULL , NULL ,  0x1C13 , {DEFTYPE_UNSIGNED16 , 1 | (OBJCODE_ARR << 8)} , asEntryDesc0x1C13 , aName0x1C13 , &sTxPDOassign, NULL , NULL , 0x0000 },
/* Object 0x6000 */
{NULL , NULL ,  0x6000 , {DEFTYPE_RECORD , 7 | (OBJCODE_REC << 8)} , asEntryDesc0x6000 , aName0x6000 , &IOTxGroup0x6000, NULL , NULL , 0x0000 },
/* Object 0x7000 */
{NULL , NULL ,  0x7000 , {DEFTYPE_RECORD , 2 | (OBJCODE_REC << 8)} , asEntryDesc0x7000 , aName0x7000 , &IORxGroup0x7000, NULL , NULL , 0x0000 },
/* Object 0x8000 */
{NULL , NULL ,  0x8000 , {DEFTYPE_RECORD , 8 | (OBJCODE_REC << 8)} , asEntryDesc0x8000 , aName0x8000 , &Conf0x8000, NULL , NULL , 0x0000 },
{NULL,NULL, 0xFFFF, {0, 0}, NULL, NULL, NULL, NULL}};
#endif    //#ifdef _OBJD_
#undef PROTO

/** @}*/
#define _DISPENSING_HEAD_OBJECTS_H_
